package com.lt.basic.project.application.service.admin.resource;

import com.lt.basic.project.common.core.PageResult;
import com.lt.basic.project.pojo.entity.admin.resource.File;
import com.lt.basic.project.pojo.validate.admin.resource.FileCreateValidate;
import com.lt.basic.project.pojo.validate.admin.resource.FileSearchValidate;
import com.lt.basic.project.pojo.validate.admin.resource.FileUpdateValidate;
import com.lt.basic.project.pojo.validate.commons.IdValidate;
import com.lt.basic.project.pojo.validate.commons.PageValidate;
import com.lt.basic.project.pojo.vo.admin.resource.FileDetailVo;
import com.lt.basic.project.pojo.vo.admin.resource.FileListVo;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件管理业务接口
 * @author LT
 * @version 1.0.0 2023-08-25
 */
public interface IFileService {


    /**
    * 根据id获取详情数据
    * @param id 主键ID
    * @return FileDetailVo
    */
    public FileDetailVo detail(Long id);

    /**
    * 获取列表数据
    * @param pageValidate 分页参数
    * @param searchValidate 搜索参数
    * @return PageResult<FileListVo>
    */
    public PageResult<FileListVo> list(PageValidate pageValidate, FileSearchValidate searchValidate);

    /**
    * 添加
    * @param createValidate 参数
    */
    public void add(FileCreateValidate createValidate);

    /**
    * 编辑
    * @param updateValidate 参数
    */
    public void edit(FileUpdateValidate updateValidate);

    /**
    * 删除数据
    * @param idValidate 主键ID
    */
    public void del(IdValidate idValidate);

    String upload(MultipartFile file, Integer type);

    File latest(Integer contentType);

    void effective(IdValidate idValidate);
}